Content distribution networks have come into widespread use as a mechanism for efficiently delivering different types of content over the Internet. They provide a way to maximize the speed and/or quantity of content that can be served in response to user requests. Content distribution networks employ multiple content distribution servers on which are stored content for delivery. In some cases, duplicates of content are stored on more than one content distribution server. The duplicate content locations allow for distribution of requested content from a convenient content distribution server (e.g. a close content distribution server, a content distribution server connected to a network route that has a high capacity, a content distribution server that has unused capacity during times of low traffic, etc.) for distribution of the content.
A content distribution manager coordinates multiple content distribution servers within the content distribution network. The content distribution manager redirects or arranges for the redirection of requests for content to appropriate content distribution servers that hold the content. Content distribution managers also perform functions related to the placement of the content on appropriate content distribution servers. Examples of such functions include analyzing, managing, and tracking the locations of content on the content distribution servers within the content distribution network, updating the content on the appropriate content distribution servers, etc.
The content distribution servers maintain individual directories of the content items stored and to be stored on the content distribution servers. Each content distribution server keeps its directory up-to-date. In some content distribution networks, a content distribution server updates its own directory by obtaining the complete up-to-date directory from another location. In other content distribution networks, the content distribution servers obtain updated information for only directory entries that have experienced changes. For example, in some cases, a content distribution server keeps its directory up-to-date by comparing the version numbers of entries within its directory to the versions numbers of entries known to be up-to-date in a directory from another location. If differences are observed in directory entries versions between the content distribution server and the directory of another content distribution server at the other location, the content distribution server obtains those differing directory entries that should be updated in the content distribution server's own directory.
If a content distribution server deletes an entry in the up-to-date directory, the content distribution server leaves a replacement entry called a “tombstone” in place of the deleted entry. The “tombstone” records the fact that an entry existed that is no longer needed. Other content distribution servers, in turn, use such tombstones as a basis for deleting the corresponding entries from their directories.
Content distribution servers obtain the content listed on their directories from various sources. Examples of such sources include other content distribution servers, the content distribution manager, content providers themselves, etc. For example, assume that a certain content server receives a new up-to-date directory that, for the first time, includes entries for content X, content Y, and content Z. Accordingly, since the content distribution manager holds a master copy of content X, the content distribution manager schedules a download to the content distribution server of content X. The content distribution manager may download content X during evening hours in order to take advantage of a low traffic load during that period. Content Y may be only available from a content provider. The content distribution server may obtain content Y from the content provider on the next day. Multiple content distribution servers in different locations may hold duplicate copies of Content Z. The content distribution server, therefore, may poll the content distribution servers in each of those locations to obtain content Z from the first of the locations with content Z that becomes available to provide the download. In this way the content distribution server obtains content designated for it in its updated directory.